/*
 * NodoCandidato.cpp
 *
 *  Created on: 13/10/2011
 *      Author: mario
 */

#include "NodoCandidato.h"
#include <typeinfo>


NodoCandidato::NodoCandidato() {}

NodoCandidato::~NodoCandidato() {
	delete data;
}

Candidato* NodoCandidato::getNodeValue() const{
	return this->data;
}

void NodoCandidato::setNodeValue(Candidato* value) {
	this->data = value;
}

NodoCandidato::NodoCandidato(const NodoCandidato &nodoCandidato) {
	this->setNext(nodoCandidato.getNext());
	data = nodoCandidato.data;
}

NodoCandidato& NodoCandidato::operator=(const NodoCandidato &nodoCandidato) {
	this->setNext(nodoCandidato.getNext());
	this->data = nodoCandidato.data;
	return *this;
}

NodoCandidato* NodoCandidato::clone() const {
	return new NodoCandidato(*this);
}

bool NodoCandidato::equals(const Node& node) const {
	if (typeid(&node) == typeid(this)) {
		NodoCandidato& nodoCandidato = (NodoCandidato&)node;
		if (this->getNodeValue()->getId() == nodoCandidato.getNodeValue()->getId()) {
			return true;
		}
	}
	return false;
}
